# list1=['jeffery','MS246','MS240']
# print(list1)
# print(type(list1))
# list2=[]
# print(list2)
# list4=['01','02',['03','NN'], (1, 2), 12]
# print(list4)
# l2 = list('fjfdsklagjsflag')
# print(l2)


# 获取列表中元素
# # 下标
# list1=['NN',221,246]
# print(list1[1])

# # 切片,和字符串切片一样
# list2=['NN',221,246]
# # print(list2[1:2:2])
# print(list2[::-1])


# # 修改列表元素的值
# list3 = []
# print(id(list3))
# list3.append("坚果")
# print(list3)
# print(id(list3))

# # 删除列表/列表中元素
# list4 = [1, 2, 3, 4, 5, 6]
# del list4[-1]
# print(list4)
# del list4[2]
# print(list4)
# del list4



# 常用方法
# 列表的常用方法
# list1 = ['NN', 221, 'NN', 246, 'MS246']
# list1.append('坚果')  # 列表最后添加新元素（追加新元素）
# print(list1)
# list1.append([1, 2, 3])
# list1.append((1, 2, 3, ['a', 'b']))
# print(list1)
# list1.extend([6, 7, 8])  # 追加多个元素
# list1.extend()
# list1.insert(2, 333)  # 指定索引位置，添加元素
# print(list1)
# value = list1.pop()  # 默认移除最后的一个元素，可以指定下标，返回删除的值
# print(value)
# print(list1)
# list1.remove('NN')  # 根据指定的值进行移除，,如果有重名元素，默认删除从左数第一个
# print(list1)
# list1.reverse()  # 反转列表元素
# print(list1)
# # 修改某个元素
# list1[0] = '坚果'
# print(list1)

# list1 = [123, 221, 0, 246, 56, 12.5]
# sort()排序只能用于数值类型元素
# list1.sort()  # 排序  默认升序
# list1.sort(reverse=True)  # 降序
# print(list1)

# list1.clear()  # 清空列表元素
# print(list1)
# index_value = list1.index(0)  # 获取元素下标
# print(index_value)


# list1 = ['NN', 221, 'NN', 246, 'MS246']
# count_value = list1.count('NN')  # 统计列表有几个指定元素
# print(count_value)

# tup1 = (1, 2, 3)
# print(type(tup1))
# list2 = list(tup1)# 元组转换列表
# print(list2)
# print(type(list2))
# tup2 = tuple(list2)  # 列表转元组
# print(tup2)

# len_value = len(list1)  # 获取列表长度
# print(len_value)

# print(list1)
# list1 = [123, 221, 0, 246, 56]
# # 只能获取全为数值类型元素的列表中，最大值/最小值
# print(min(list1))  # 获取最小值
# print(max(list1))  # 获取最大值


b = ['tom', 'lily', 'hom']
# r = [name for name in b if len(name) > 3]
# print(r)
# r = [name.capitalize() for name in b if len(name) > 3]
# print(r)